<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>第二周/01/4变量.html</title>
  </head>
  <body></body>
  <script>
    /* 变量
     * 用于引用计算机内存地址
     * js中用var声明
     * js不允许重复声明,可以重新赋值
     */
    var age;
    age = 10;
    var name = "张三";
    var age = 10,
      name = "张三";
    // 省略var声明变量不会发生错误,但是在函数内部声明的变量会变成全局变量
    gender = "男";
    // 互换两个变量的值
    (a = 11), (b = 6);
    a += b;
    b += a;
    a -= b;
    b = b + 2 * a;
    a = -a;
    console.log(a);
    console.log(b);
    /* 变量存储形式
     * 引用类型在堆中:保存的在栈内存中的一个指针,这个指针指向堆内存
     * 基本类型在栈中
     * 传参问题:函数对形参处理时,基本数据类型的实参不会变,引用数据类型的实参会变化
     */
    num = 1;
    console.log(num);
    // 变量声明会自动提升到代码顶端
    var num;
  </script>
</html>
